package net.lshimokawa.ejemplos.apachecxf.jaxws.dao.jdbc;

import java.util.List;

import javax.sql.DataSource;

import net.lshimokawa.ejemplos.apachecxf.jaxws.dao.UsuarioDao;
import net.lshimokawa.ejemplos.apachecxf.jaxws.model.Usuario;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.stereotype.Repository;

@Repository
public class UsuarioDaoJdbc extends SimpleJdbcDaoSupport implements UsuarioDao {

	@Autowired
	public UsuarioDaoJdbc(DataSource dataSource) {
		setDataSource(dataSource);
	}

	@Override
	public Usuario getUsuarioPorUsername(String username) {
		return getSimpleJdbcTemplate().queryForObject(
				"select username, nombre from usuario where username=?",
				new BeanPropertyRowMapper<Usuario>(Usuario.class), username);
	}

	@Override
	public List<Usuario> getUsuarios() {
		return getSimpleJdbcTemplate().query(
				"select username, nombre from usuario",
				new BeanPropertyRowMapper<Usuario>(Usuario.class));
	}

	@Override
	public void registrarUsuario(Usuario usuario) {
		getSimpleJdbcTemplate()
				.update("insert into usuario(username, password, nombre) values(?, ?, ?)",
						usuario.getUsername(), usuario.getPassword(),
						usuario.getNombre());
	}

}
